home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ntfs / dir.h < prev    next >
C/C++ Source or Header  |  2005-10-18  |  3KB  |  78 lines

  1. /*
  2.  * dir.h - Exports for directory handling. Part of the Linux-NTFS project.
  3.  *
  4.  * Copyright (c) 2002 Anton Altaparmakov
  5.  * Copyright (c) 2005 Yura Pakhuchiy
  6.  *
  7.  * This program/include file is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU General Public License as published
  9.  * by the Free Software Foundation; either version 2 of the License, or
  10.  * (at your option) any later version.
  11.  *
  12.  * This program/include file is distributed in the hope that it will be
  13.  * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
  14.  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  * GNU General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with this program (in the main directory of the Linux-NTFS
  19.  * distribution in the file COPYING); if not, write to the Free Software
  20.  * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  */
  22.  
  23. #ifndef _NTFS_DIR_H
  24. #define _NTFS_DIR_H
  25.  
  26. #include "types.h"
  27.  
  28. #define PATH_SEP '/'
  29.  
  30. #ifndef MAX_PATH
  31. #define MAX_PATH 1024
  32. #endif
  33.  
  34. /* The little endian Unicode string $I30 as a global constant. */
  35. extern ntfschar I30[5];
  36.  
  37. extern u64 ntfs_inode_lookup_by_name(ntfs_inode *dir_ni,
  38.         const ntfschar *uname, const int uname_len);
  39.  
  40. extern ntfs_inode *ntfs_pathname_to_inode(ntfs_volume *vol, ntfs_inode *parent,
  41.         const char *pathname);
  42.  
  43. extern ntfs_inode *ntfs_create(ntfs_inode *dir_ni, ntfschar *name, u8 name_len,
  44.         const unsigned type);
  45. extern int ntfs_delete(ntfs_inode *ni, ntfs_inode *dir_ni, ntfschar *name,
  46.         u8 name_len);
  47. extern int ntfs_link(ntfs_inode *ni, ntfs_inode *dir_ni, ntfschar *name,
  48.         u8 name_len);
  49.  
  50. /*
  51.  * File types (adapted from include <linux/fs.h>)
  52.  */
  53. #define NTFS_DT_UNKNOWN        0
  54. #define NTFS_DT_FIFO        1
  55. #define NTFS_DT_CHR        2
  56. #define NTFS_DT_DIR        4
  57. #define NTFS_DT_BLK        6
  58. #define NTFS_DT_REG        8
  59. #define NTFS_DT_LNK        10
  60. #define NTFS_DT_SOCK        12
  61. #define NTFS_DT_WHT        14
  62.  
  63. /*
  64.  * This is the "ntfs_filldir" function type, used by ntfs_readdir() to let
  65.  * the caller specify what kind of dirent layout it wants to have.
  66.  * This allows the caller to read directories into their application or
  67.  * to have different dirent layouts depending on the binary type.
  68.  */
  69. typedef int (*ntfs_filldir_t)(void *dirent, const ntfschar *name,
  70.         const int name_len, const int name_type, const s64 pos,
  71.         const MFT_REF mref, const unsigned dt_type);
  72.  
  73. extern int ntfs_readdir(ntfs_inode *dir_ni, s64 *pos,
  74.         void *dirent, ntfs_filldir_t filldir);
  75.  
  76. #endif /* defined _NTFS_DIR_H */
  77.  
  78.